Telegram Group & Telegram Channel
🖥 Краткое руководство по RegEx в Python

📦 Импорт модуля:

import re

🔍 Основные функции модуля re

re.search(pattern, string) # Находит первое совпадение в любой части строки
re.match(pattern, string) # Проверяет совпадение только в начале строки
re.fullmatch(pattern, string) # Проверяет, соответствует ли вся строка шаблону полностью
re.findall(pattern, string) # Возвращает список всех совпадений
re.finditer(pattern, string) # То же самое, но возвращает итератор с объектами Match
re.sub(pattern, repl, string) # Заменяет найденные по шаблону участки
re.split(pattern, string) # Делит строку по шаблону

# 🧠 Основы синтаксиса шаблонов

| Шаблон | Значение |
|---------|-----------------------------------|
| . | Любой символ, кроме символа новой строки |
| ^ | Начало строки |
| $ | Конец строки |
| * | 0 или более повторений |
| + | 1 или более повторений |
| ? | 0 или 1 повторение |
| {n} | Ровно n повторений |
| {n,} | n или больше повторений |
| {n,m} | От n до m повторений |
| [] | Класс символов |
| [^] | Отрицание класса символов |
| | | Логическое ИЛИ (`a|b`) |
| () | Группа захвата |
| \ | Экранирование специальных символов|

💡 Примеры

re.search(r'\d+', 'ID=12345') # Найдёт '12345' (одна или более цифр)
re.match(r'^\w+$', 'hello_world') # Проверяет, что вся строка состоит из букв, цифр или _
re.findall(r'[A-Z][a-z]+', 'Mr. Smith and Dr. Brown') # ['Smith', 'Brown']
re.sub(r'\s+', '-', 'a b c') # Результат: 'a-b-c'
re.split(r'[;,\s]\s*', 'one, two;three four') # ['one', 'two', 'three', 'four']

🎯 Работа с группами захвата

text = 'Name: John, Age: 30'
match = re.search(r'Name: (\w+), Age: (\d+)', text)
if match:
print(match.group(1)) # John
print(match.group(2)) # 30

Группы можно называть:

pattern = r'(?P<name>\w+): (?P<value>\d+)'
match = re.search(pattern, 'score: 42')
match.group('name') # 'score'
match.group('value') # '42'

🧱 Сложные шаблоны

pattern = r'\b(?:https?://)?(www\.)?\w+\.\w+\b'
text = 'Visit https://example.com or www.test.org'
re.findall(pattern, text) # [['www.'], ['www.']]

⚠️ Полезные рекомендации

• Используйте префикс r'' перед шаблонами, чтобы не нужно было экранировать обратный слэш \
• re.compile(pattern) помогает повысить скорость при многократном использовании шаблона
• Лучше использовать re.search вместо re.match, так как он ищет совпадение в любом месте строки

Быстрая проверка шаблонов

📍 Онлайн-сервисы для тестирования:
- https://regex101.com/
- https://pythex.org/

Если нужна отдельная шпаргалка по re.sub с использованием лямбда-функций, замен и функций внутри, ставь лайк 👍

@Python_Community_ru



tg-me.com/Python_Community_ru/2598
Create:
Last Update:

🖥 Краткое руководство по RegEx в Python

📦 Импорт модуля:

import re

🔍 Основные функции модуля re

re.search(pattern, string) # Находит первое совпадение в любой части строки
re.match(pattern, string) # Проверяет совпадение только в начале строки
re.fullmatch(pattern, string) # Проверяет, соответствует ли вся строка шаблону полностью
re.findall(pattern, string) # Возвращает список всех совпадений
re.finditer(pattern, string) # То же самое, но возвращает итератор с объектами Match
re.sub(pattern, repl, string) # Заменяет найденные по шаблону участки
re.split(pattern, string) # Делит строку по шаблону

# 🧠 Основы синтаксиса шаблонов

| Шаблон | Значение |
|---------|-----------------------------------|
| . | Любой символ, кроме символа новой строки |
| ^ | Начало строки |
| $ | Конец строки |
| * | 0 или более повторений |
| + | 1 или более повторений |
| ? | 0 или 1 повторение |
| {n} | Ровно n повторений |
| {n,} | n или больше повторений |
| {n,m} | От n до m повторений |
| [] | Класс символов |
| [^] | Отрицание класса символов |
| | | Логическое ИЛИ (`a|b`) |
| () | Группа захвата |
| \ | Экранирование специальных символов|

💡 Примеры

re.search(r'\d+', 'ID=12345') # Найдёт '12345' (одна или более цифр)
re.match(r'^\w+$', 'hello_world') # Проверяет, что вся строка состоит из букв, цифр или _
re.findall(r'[A-Z][a-z]+', 'Mr. Smith and Dr. Brown') # ['Smith', 'Brown']
re.sub(r'\s+', '-', 'a b c') # Результат: 'a-b-c'
re.split(r'[;,\s]\s*', 'one, two;three four') # ['one', 'two', 'three', 'four']

🎯 Работа с группами захвата

text = 'Name: John, Age: 30'
match = re.search(r'Name: (\w+), Age: (\d+)', text)
if match:
print(match.group(1)) # John
print(match.group(2)) # 30

Группы можно называть:

pattern = r'(?P<name>\w+): (?P<value>\d+)'
match = re.search(pattern, 'score: 42')
match.group('name') # 'score'
match.group('value') # '42'

🧱 Сложные шаблоны

pattern = r'\b(?:https?://)?(www\.)?\w+\.\w+\b'
text = 'Visit https://example.com or www.test.org'
re.findall(pattern, text) # [['www.'], ['www.']]

⚠️ Полезные рекомендации

• Используйте префикс r'' перед шаблонами, чтобы не нужно было экранировать обратный слэш \
• re.compile(pattern) помогает повысить скорость при многократном использовании шаблона
• Лучше использовать re.search вместо re.match, так как он ищет совпадение в любом месте строки

Быстрая проверка шаблонов

📍 Онлайн-сервисы для тестирования:
- https://regex101.com/
- https://pythex.org/

Если нужна отдельная шпаргалка по re.sub с использованием лямбда-функций, замен и функций внутри, ставь лайк 👍

@Python_Community_ru

BY Python Community




Share with your friend now:
tg-me.com/Python_Community_ru/2598

View MORE
Open in Telegram


Python Community Telegram | DID YOU KNOW?

Date: |

Importantly, that investor viewpoint is not new. It cycles in when conditions are right (and vice versa). It also brings the ineffective warnings of an overpriced market with it.Looking toward a good 2022 stock market, there is no apparent reason to expect these issues to change.

Telegram Auto-Delete Messages in Any Chat

Some messages aren’t supposed to last forever. There are some Telegram groups and conversations where it’s best if messages are automatically deleted in a day or a week. Here’s how to auto-delete messages in any Telegram chat. You can enable the auto-delete feature on a per-chat basis. It works for both one-on-one conversations and group chats. Previously, you needed to use the Secret Chat feature to automatically delete messages after a set time. At the time of writing, you can choose to automatically delete messages after a day or a week. Telegram starts the timer once they are sent, not after they are read. This won’t affect the messages that were sent before enabling the feature.

Python Community from id


Telegram Python Community
FROM USA